package com.example.dbcms.mapper;

import com.example.dbcms.domain.PropertyFee;

import java.util.List;
import java.util.Map;

public interface PropertyFeeDao {

    /**
     * 查询所有物业费用记录
     * @param propertyFee 条件查询
     * @return
     */
    List<PropertyFee> selectAllPropertyFeeInfo(PropertyFee propertyFee);

    /**
     * 条件查询
     * @param mapCondition
     * @return
     */
    List<PropertyFee> selectAllPropertyFeeInfoByCondition(Map<String, String> mapCondition);

    /**
     * 新增一条记录
     * @param propertyFee
     * @return
     */
    int addPropertyFee(PropertyFee propertyFee);

    /**
     * 通过id删除记录
     * @param id
     * @return
     */
    int deletePropertyFee(int id);

    /**
     * 得到最大记录id
     * @return
     */
    int getMaxPropertyFeeId();

    /**
     * 通过id得到物业费用
     * @param id
     * @return
     */
    PropertyFee getPropertyById(int id);

    /**
     * 修改一条物业费用
     * @param propertyFee
     * @return
     */
    int updatePropertyFee(PropertyFee propertyFee);

    /**
     * 删除多条物业记录
     * @param ids
     * @return
     */
    int deleteMultiplePropertyFee(List<Integer> ids);

    /**
     * 查询当前年月条件下表中是否有该居民的物业费用记录
     * @param residentId
     * @param year
     * @param month
     * @return
     */
    PropertyFee getPropertyFeeByYearAndMonth(int residentId,int year,int month);

    /**
     * 得到所有物业费用
     * @return
     */
    List<PropertyFee> getAllPropertyFee(String buildingNo,String roomNo);

    /**
     * 查询在某一时间段下的费用综合
     * @return
     */
    List<PropertyFee> getAllPropertyFeeByDate(int year,int month,String buildingNo,String roomNo);

    /**
     *
     * @param residentId
     * @return
     */
    List<Integer> getPropertyNotFeed(int residentId);

}
